<?php

namespace Common\Model;

use Think\Model;

class ShopModel extends Model {

    protected $_validate = array(/* array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]) */
        array('shopAccount', 'require', '帐号不能为空！'),
        array('shopName', 'require', '商店名称不能为空！'),
        array('address', 'require', '商店地址不能为空！'),
        array('x', 'require', '地址经度不能为空！'),
        array('y', 'require', '地址纬度不能为空！'),
        array('shopAccount', '', '帐号已经存在！', 0, 'unique', 1),
        array('oldPassword', 'checkOldPsw', '旧密码错误！', 0, 'callback', 2),
        array('rePassword', 'shopPassword', '确认密码不正确', 0, 'confirm'), // 验证确认密码是否和密码一致
        array('shopPassword', '3,12', '密码长度必须在3到12个字符', 0, 'length'), // 密码长度3~12
        array('shopGrade', '0,5', '商店评分必须在0到5之间', 0, 'between'), // 密码长度3~12
    );  // 自动验证定义
    protected $_auto = array(/* array(完成字段1,完成规则,[完成条件,附加规则]) */
        array('addTime', 'time', 1, 'function'),
        array('updateTime', 'time', 2, 'function'),
        array('isOn', '1', 1),
    );  // 自动完成定义

    protected function checkOldPsw() {
        $shopid = I("session.shopid");
        $oldPsw = I("oldPassword");
        $data['shopID'] = $shopid;
        $dbPsw = $this->where($data)->getField("shopPassword");
        return ($oldPsw === $dbPsw);
    }

    /**
     *  获取单个商店信息 
     */
    public function getShop($sAccount = null, $sid = null, $where = array()) {
        if (!empty($sAccount)) {
            $where['shopAccount'] = $sAccount;
        }

        if (!empty($sid)) {
            $where['shopID'] = $sid;
        }

        $result = $this->where($where)->find();

        return $result;
    }

    /**
     * 获得商店列表（带基本查询）
     */
    public function getShopList($pageNo = 1, $pageSize = 15, $where = array(), $order = array(),$field="*") {
        $rt = $this->field($field)->where($where)->page("$pageNo,$pageSize")->order($order)->select();
        return $rt;
    }

    public function getShopListLength($where = array()) {
        return $this->where($where)->count();
    }

    /**
     * 添加单个信息
     * @return type
     */
    public function addShop($data = '') {
        if (!$this->create($data)) {
            return false;
        }
        return $this->add();
    }

    /**
     * 更新信息
     * @return type
     */
    public function updateShop($data = '') {
        if (!$this->create($data)) {
            return false;
        }
        return $this->save();
    }

    /**
     * 将商店isOn属性置为0(即删除)
     */
    public function deleteShop($id) {
        if ($id <= 0) {
            $this->error = "无效ID";
            return false;
        }
        $data = array("isOn" => 0, "updateTime" => time());
        return $this->where("shopID=$id")->save($data);
    }

}
